﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Vista.Seguridad
{
    public partial class FormLogin : Form
    {
        public FormLogin()
        {
            InitializeComponent();
            this.CenterToScreen();
        }

        private void btnEntrar_Click(object sender, EventArgs e)
        {
            if (ValidarDatos())
            {
                object rta = Controladora.Seguridad.CUIniciarSesion.ObtenerInstancia().IniciarSesion(txtusuario.Text, Encriptar(txtpass.Text));

                if (rta is Entidades.Seguridad.Usuario) 
                {
                    Entidades.Seguridad.Usuario usuario = (Entidades.Seguridad.Usuario)rta;
                    //Vista.PanificadoraUNIPAN oForm = new PanificadoraUNIPAN(usuario);
                    Vista.FormUnipan oForm = new FormUnipan(usuario);
                    oForm.Show();
                    this.Close();                    
                }
                else if (Convert.ToInt32(rta) == 1)
                {
                    MessageBox.Show("Usuario Inexistente");
                    txtpass.Text = null;
                    txtusuario.Text = null;
                    txtusuario.Focus();
                }
                else if (Convert.ToInt32(rta) == 2)
                {
                    MessageBox.Show("Clave Inválida");
                    txtpass.Text = null;
                    //txtusuario.Text = null;
                    txtpass.Focus();
                }
            }
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
      
        private bool ValidarDatos()
        {
            if (this.txtpass.Text.Trim() == "")
            {
                this.txtpass.Focus();
                MessageBox.Show("Debe completar el campo password");
                return false;
            }
            else if (this.txtusuario.Text.Trim() == "")
            {
                this.txtusuario.Focus();
                MessageBox.Show("Debe completar el campo usuario");
                return false;
            }
            return true;
        }
        private string Encriptar(string valor)
        {
            System.Security.Cryptography.SHA1CryptoServiceProvider provider = new System.Security.Cryptography.SHA1CryptoServiceProvider();
            byte[] bytes = System.Text.Encoding.UTF8.GetBytes(valor);
            byte[] inArray = provider.ComputeHash(bytes);
            provider.Clear();
            return Convert.ToBase64String(inArray);
        }

    }
}
